package pe.tnova.library.util.field;

import java.math.BigDecimal;

import pe.tnova.library.util.validate.ValidateUtil;
/**
 * @author Danielle Delgado
 *
 */
public class EnteroUtil {

	public static boolean isIdValido(Integer entero) {
		return isEnteroNoCero(entero);
	}
	
	public static boolean isIdValido(Byte entero) {
		if(entero!=null) return isEnteroNoCero(entero.intValue());
		return false;
	}	
	
	public static boolean isIdValido(Short entero) {
		if(entero!=null) return isEnteroNoCero(entero.intValue());
		return false;
	}
	
	public static boolean isIdValido(String entero) {
		if(entero!=null) return isEnteroNoCero(Integer.parseInt(entero));
		return false;
	}
	
	public static boolean isEnteroNoCero(Integer entero) {
		return ValidateUtil.isCero(entero);
	}
		
	public static boolean isEnteroPositivo(String texto) {
		if(!TextoUtil.contieneAlgo(texto))
			return false;
		for(int i=0; i<texto.length(); i++) {
			if(!Character.isDigit(texto.charAt(i))) return false;
		} 
		return true;
	}
		
	public static Integer convertirCadenaAEntero(String cadena) {
		if (cadena != null) {
			return (cadena.length()!=0)?Integer.parseInt(cadena):0;
		}
		return null;
	}
	
	public static String convertirBigDecimalAString(BigDecimal bigDecimal) {
		if(bigDecimal!=null) {
			return (bigDecimal.intValue()!=0)?bigDecimal.toString():"";
		}
		return null;
	}
	
	public static String convertirDoubleAString(Double decimal) {
		if(decimal!=null) {
			return (decimal.intValue()!=0)?decimal.toString():"";
		}
		return null;
	}
	
	public static String obtenerParteEnteraDeBigDecimal(BigDecimal bigDecimal) {
			if(convertirBigDecimalAString(bigDecimal) != null){
				String bigDecimalCadena = convertirBigDecimalAString(bigDecimal);
				String parteEnteraDeBigDecimal = new String();
				int lugarPuntoDecimalEnCadena = bigDecimalCadena.indexOf(".");
					if(lugarPuntoDecimalEnCadena != -1){
						parteEnteraDeBigDecimal = bigDecimalCadena.substring(0, lugarPuntoDecimalEnCadena);
						return parteEnteraDeBigDecimal;
					}
					return bigDecimalCadena;
			}
		return null;
	}
	
	public static String obtenerParteEnteraDeDouble(Double decimal) {
		if(convertirDoubleAString(decimal) != null){
			String decimalCadena = convertirDoubleAString(decimal);
			String parteEnteraDeBigDecimal = new String();
			int lugarPuntoDecimalEnCadena = decimalCadena.indexOf(".");
				if(lugarPuntoDecimalEnCadena != -1){
					parteEnteraDeBigDecimal = decimalCadena.substring(0, lugarPuntoDecimalEnCadena);
					return parteEnteraDeBigDecimal;
				}
				return decimalCadena;
		}
		return null;
	}
	
}